#ifndef PAGER_H
#define PAGER_H
#include <stdint.h>
#include <stdio.h>

#define TABLE_MAX_PAGES 100

// 处理对于文件的读取
typedef struct
{
    FILE* file_descriptor;
    uint32_t file_length;
    uint32_t num_pages;
    void* pages[TABLE_MAX_PAGES]; //这里其实是Node pages[TABLE_MAX_PAGES]
} Pager;

// 读取文件
Pager *pager_open(const char *filename);
// 获取第几页page的指针
void *get_page(Pager *pager, uint32_t page_num);
// 将pager的第page_num保存起来
void pager_flush(Pager *pager, uint32_t page_num);
//获取pager的第一个未使用的page
uint32_t get_unused_page_num(Pager* pager);
#endif // PAGER_H